A basic function of a SAN is to support the flow of data between hosts and storage devices. However, apart from flow constraints, a SAN design also needs to take into account user specified RAS (reliability, availability, and serviceability) and physical constraints such as location and size of devices and their heat dissipation. Furthermore, the fiber channel switches, host bus adapters (HBAs), and storage devices used in a SAN often have interoperability constraints that are documented by each vendor. As a result, there may be hundreds or even thousands of implicit constraints in a particular SAN design problem. For a SAN to operate smoothly, all these constraints should be taken into account by the design process.
The most popular approach to design SANs is “by hand” by experts in the field. A field practitioner would follow conservative best practices to design a SAN. An example of such conservative best practices is to use equipment built by a single vendor so that most interoperability constraints can be avoided. However, the design “by hand” often results in excessive caution leading to overprovisioning and lock-in with a particular manufacturer. On the other hand, the manual SAN design process can be further assisted by software SAN design tools (such as EMC SAN Architect), which provide simple design to human operators. For example, such tools can provide guidance on device interoperability by filtering out devices that are incompatible with the devices selected so far. However, such a tool still relies on a human operator's expert knowledge in selecting designs and coming up with the SAN configuration.
Recently, a few approaches to automate SAN design have been proposed that rely upon conventional optimization techniques and heuristics. However, conventional automated approaches ignore a part of RAS requirements since such constraints are difficult to incorporate into conventional optimization algorithms even for medium scale SAN design. It is also observed that conventional automated SAN fabric design does not have the capability of generating SAN fabric spanning across multiple geographical regions. Furthermore, none of the automated SAN fabric generation tools takes physical constraints into account when designing SAN fabric. Considering physical constraints in SAN design process may be important because such physical constraints may require grouping of certain devices separate from other devices (e.g. certain hosts must be placed in a room with security access).
Accordingly, a need has been recognized in connection with providing a SAN design that would respect all user requirements including RAS/physical constraints and design SAN without significant overprovisioning and by following best practices in the field. A need has also been recognized in connection with providing a SAN fabric design methodology that decomposes total flow requirements into multiple flow groups (e.g. based on geographic location) and generates SAN fabric for each flow group while connecting these SAN fabrics by interconnection technologies to generate a total SAN fabric that can accommodate the entire flow requirement.